from pymilvus import MilvusClient
# 连接milvus服务
client = MilvusClient(
    uri="http://127.0.0.1:19530",
)
# 创建数据库, 如果数控存在，会报错
# client.create_database(
#     db_name="my_database_1"
# )

# 查看数据库
ret =client.describe_database(db_name='my_database_1')
print(ret) # {'name': 'my_database_1'}

# schema相当于数据库中的字段
schema = client.create_schema(auto_id=True) # auto_id=True 表示使用自增id



# 创建collection(相当于mysql的数据表), 不存在才创建
'''
注意的点
1、如果我们不指定任何字段信息，Milvus 会自动创建一个主键的默认id 字段，以及一个存储向量数据的vector 字段。保留的 JSON 字段用于存储非 Schema 定义的字段及其值。
'''
if not client.has_collection('demo_article'):
    client.create_collection(
        collection_name="demo_article",
        dimension=768, # 向量的维度
        metric_type="COSINE", # 这段代码设置了相似度计算的度量类型为"COSINE"（余弦相似度）。余弦相似度通过计算两个向量夹角的余弦值来衡量它们的相似程度，值域为[-1,1]，常用于文本相似度计算和推荐系统中。
        consistency_level="Bounded", # Supported values are (`"Strong"`, `"Session"`, `"Bounded"`, `"Eventually"`). See https://milvus.io/docs/consistency.md#Consistency-Level for more details.
        auto_id=True,
    )
